package tp1POO.Persistencia;

import tp1POO.Modelo.Motorista;
import tp1POO.Modelo.ObjetoPOO;
import tp1POO.Modelo.Pessoa;

public class MotoristaDAOTexto extends DAOTexto {
	/**
	 * Salva objeto do tipo Motorista no arquivo texto
	 * @param parObj objeto a ser salvo
	 */
	@Override
	public void salvar(ObjetoPOO parObj) {
		Motorista parMotorista = (Motorista) parObj;
		if (parMotorista == null)
			return;
		String tmpValue;
		tmpValue = parMotorista.getIdentifier() + FileManager.getSeparator() +
		parMotorista.getCNH() + FileManager.getSeparator();
		if (parMotorista.getLocacao() != null)
			tmpValue += parMotorista.getLocacao().getIdentifier();

		Pessoa pes = new Pessoa();
		pes.copy(parMotorista);
		GerenciadorObjetos.obterInstancia().salvarObj(pes);
		//Salvando objeto
		gestor.SalvarObjeto(tmpValue, parMotorista.getClass().getSimpleName());
	}
	/**
	 * Converte uma string em um ObjetoPOO do tipo Motorista
	 * @param parString String a ser convertida
	 * @return um objeto construido de acordo com seu tipo
	 */
	@Override
	public ObjetoPOO converterObj(String parString) {
		if (parString != null && parString.length() > 0)
		{
			String s[] = parString.split(FileManager.getSeparator());
			Pessoa pes = (Pessoa)GerenciadorObjetos.obterInstancia().obterObj(new Pessoa(s[0]));
			Motorista mot = new Motorista("", "", s[1]);
			mot.copy(pes);
			return mot;
		}
		return null;
	}
}
